<?php

require_once __DIR__ . '/../../vendor/autoload.php';

use JLPay\Core\OrgConfig;
use JLPay\Core\DemoConfig;
use JLPay\Services\BaseDataService;
use JLPay\Models\BaseData\RegionListRequest;
use JLPay\Utils\Logger;
use JLPay\Utils\DemoRequestHandler;

/**
 * 地区码信息查询示例
 */

// =================== 工具函数 =====================
/**
 * 创建配置对象
 */
function createConfig(): OrgConfig
{
    return DemoConfig::createConfigWithCrypto();
}

// =================== 地区码信息查询示例 =====================
/**
 * 地区码信息查询示例
 */
function regionListDemo(): void
{
    $logger = Logger::getInstance();
    $logger->info("开始执行地区码信息查询示例");
    
    // 创建配置对象和服务
    $config = createConfig();
    $baseDataService = new BaseDataService($config);
    
    // 查询地区码信息
    $logger->info("=== 查询地区码信息 ===");
    $regionRequest = new RegionListRequest();
    $regionRequest->setRegionName("北京")
        ->setRegionRank("1")
        ->setLimit(10)
        ->setOffset(0);
    
    // 发送请求 - 使用DemoRequestHandler
    $response = DemoRequestHandler::sendRequestAndHandleResponse(
        $baseDataService, 
        $regionRequest, 
        "查询地区码信息",
        function($service, $request) {
            return $service->queryRegionList($request);
        }
    );
    
    $logger->info("地区码信息查询示例执行完毕");
}

// =================== 主程序 =====================
if (php_sapi_name() === 'cli') {
    $logger = Logger::getInstance();
    
    // 设置日志级别为INFO
    $logger->setLevel('INFO');
    
    $logger->info(str_repeat("=", 50));
    $logger->info("===== 地区码信息查询示例 开始 =====");
    $logger->info(str_repeat("=", 50));
    regionListDemo();
    
    $logger->info("\n" . str_repeat("=", 50));
    $logger->info("===== 地区码信息查询示例执行完毕 =====");
    $logger->info(str_repeat("=", 50));
} 